//package com.huaxonline.boot.common.util;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import net.sf.json.JSONSerializer;
//import net.sf.json.xml.XMLSerializer;
//import org.dom4j.*;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.nio.ByteBuffer;
//import java.nio.channels.FileChannel;
//import java.util.List;
//
//public class XML2JsonUtil {
//
//    public static String readFile(String path) throws Exception {
//        File file = new File(path);
//        FileInputStream fis = new FileInputStream(file);
//        FileChannel fc = fis.getChannel();
//        ByteBuffer bb = ByteBuffer.allocate(new Long(file.length()).intValue());
//        //fc向buffer中读入数据
//        fc.read(bb);
//        bb.flip();
//        String str = new String(bb.array(), "UTF8");
//        fc.close();
//        fis.close();
//        return str;
//
//    }
//
//    /**
//     * xml转json
//     *
//     * @param xmlStr
//     * @return
//     * @throws DocumentException
//     */
//    public static JSONObject xml2Json(String xmlStr) throws DocumentException {
//        Document doc = DocumentHelper.parseText(xmlStr);
//        JSONObject json = new JSONObject();
//        dom4j2Json(doc.getRootElement(), json);
//        return json;
//    }
//
//    /**
//     * xml转json
//     *
//     * @param element
//     * @param json
//     */
//    public static void dom4j2Json(Element element, JSONObject json) {
//        //如果是属性
//        for (Object o : element.attributes()) {
//            Attribute attr = (Attribute) o;
//            if (!isEmpty(attr.getValue())) {
//                json.put("@" + attr.getName(), attr.getValue());
//            }
//        }
//        List<Element> chdEl = element.elements();
//        if (chdEl.isEmpty() && !isEmpty(element.getText())) {//如果没有子元素,只有一个值
//            json.put(element.getName(), element.getText());
//        }
//
//        for (Element e : chdEl) {//有子元素
//            if (!e.elements().isEmpty()) {//子元素也有子元素
//                JSONObject chdjson = new JSONObject();
//                dom4j2Json(e, chdjson);
//                Object o = json.get(e.getName());
//                if (o != null) {
//                    JSONArray jsona = null;
//                    if (o instanceof JSONObject) {//如果此元素已存在,则转为jsonArray
//                        JSONObject jsono = (JSONObject) o;
//                        json.remove(e.getName());
//                        jsona = new JSONArray();
//                        jsona.add(jsono);
//                        jsona.add(chdjson);
//                    }
//                    if (o instanceof JSONArray) {
//                        jsona = (JSONArray) o;
//                        jsona.add(chdjson);
//                    }
//                    json.put(e.getName(), jsona);
//                } else {
//                    if (!chdjson.isEmpty()) {
//                        json.put(e.getName(), chdjson);
//                    }
//                }
//
//
//            } else {//子元素没有子元素
//                for (Object o : element.attributes()) {
//                    Attribute attr = (Attribute) o;
//                    if (!isEmpty(attr.getValue())) {
//                        json.put("@" + attr.getName(), attr.getValue());
//                    }
//                }
//                if (!e.getText().isEmpty()) {
//                    json.put(e.getName(), e.getText());
//                }
//            }
//        }
//    }
//
//    public static String json2xml(String jsonString) {
//        XMLSerializer xmlSerializer = new XMLSerializer();
//        return xmlSerializer.write(JSONSerializer.toJSON(jsonString));
//    }
//
//
//    public static boolean isEmpty(String str) {
//
//        if (str == null || str.trim().isEmpty() || "null".equals(str)) {
//            return true;
//        }
//        return false;
//    }
//
//
//    public static void main(String[] args) throws Exception {
//        //String xmlStr= readFile("D:/ADA/et/Issue_20130506_back.xml");
//        String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
//                "<Overcoat>\n" +
//                "\t<Head>\n" +
//                "\t\t<TranDate>2017428</TranDate>\n" +
//                "\t\t<!-- 交易日期 ,格式yyyyMMdd ，必传 -->\n" +
//                "\t\t<TranTime>185454</TranTime>\n" +
//                "\t\t<!-- 交易时间 ， 必传 -->\n" +
//                "\t\t<TranNo>2016062407245919</TranNo>\n" +
//                "\t\t<!-- 交易流水号 ，必传 -->\n" +
//                "\t\t<TranCom></TranCom>\n" +
//                "\t\t<FuncFlag></FuncFlag>\n" +
//                "\t\t<TranOperator>hxzx</TranOperator>\n" +
//                "\t\t<!-- 操作人 ，必传 -->\n" +
//                "\t\t<isTparty>Y</isTparty><!--是否是第三方标志-->\n" +
//                "\t\t<sign></sign><!--生成的签名-->\n" +
//                "\t</Head>\n" +
//                "\t<Body>\n" +
//                "       <ContNos>\n" +
//                "\t\t    <ContNo>888010000057857</ContNo>\n" +
//                "\t\t    <!--保单号 ，必传 -->\n" +
//                "       </ContNos>\n" +
//                "       <ContNos>\n" +
//                "\t\t    <ContNo>888010000057857</ContNo>\n" +
//                "\t\t    <!--保单号 ，必传 -->\n" +
//                "       </ContNos>\n" +
//                "\t</Body>\n" +
//                "</Overcoat>";
//        Document doc = DocumentHelper.parseText(xmlStr);
//        JSONObject json = new JSONObject();
//        dom4j2Json(doc.getRootElement(), json);
//        System.out.println("xml2Json:" + json.toJSONString());
//
//
//    }
//
//}